<?php

namespace app\admin\model;

use think\Model;
use think\Db;
class Fields extends Model
{   
    public function getTypeAttr($value)
    {
        $status = [
                '1' =>'单行文本',
                '2' =>'单选按钮',
                '3' =>'复选框',
                '4' =>'下拉菜单',
                '5' =>'文本域',
                '6' =>'附件',
                '7' =>'浮点',
                '8' =>'整型',
                '9' =>'长文本'
                ];
        return $status[$value];
    }
    public static function init()
    {
        self::afterInsert(function ($data) {
            $tableName=config("database.prefix").db('models')->where('id',$data['model_id'])->value('table_name');
             //字段类型：1：单行文本 2：单选安按钮 3：复选框 4：下拉菜单 5：文本域 6：附件 7：浮点 8：整型 9：长文本类型 longtext 
             switch ($data['type']) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 6:
                    $fileType='varchar(150) not null default ""';
                    break;
                case 5:
                    $fileType='varchar(600) not null default ""';
                    break;
                case 7:
                    $fileType='float not null default "0.0"';
                    break;
                case 8:
                    $fileType='int not null default "0"';
                    break;
                case 9:
                    $fileType='longtext';
                    break;
                default:
                    $fileType='varchar(150) not null default ""';
                    break;
            }
            $sql="alter table {$tableName} add {$data['ename']} {$fileType}";
            Db::execute($sql);
        
        });
        self::afterUpdate(function ($data) {
            
            $tableName=config("database.prefix").db('models')->where('id',$data['model_id'])->value('table_name');
             //字段类型：1：单行文本 2：单选安按钮 3：复选框 4：下拉菜单 5：文本域 6：附件 7：浮点 8：整型 9：长文本类型 longtext 
             switch ($data['type']) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 6:
                    $fileType='varchar(150) not null default ""';
                    break;
                case 5:
                    $fileType='varchar(600) not null default ""';
                    break;
                case 7:
                    $fileType='float not null default "0.0"';
                    break;
                case 8:
                    $fileType='int not null default "0"';
                    break;
                case 9:
                    $fileType='longtext';
                    break;
                default:
                    $fileType='varchar(150) not null default ""';
                    break;
            }
            $sql="alter table {$tableName} change {$data['oldename']}  {$data['ename']}  {$fileType}";
                Db::execute($sql);
        
        });
       self::afterDelete(function ($data) {
            $tableName=config("database.prefix").db('models')->where('id',$data['model_id'])->value('table_name');
            $sql="alter table  {$tableName}  drop column {$data['ename']}";
            Db::execute($sql);
        });
    }
}
